using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Marlimer.Common;
using System.Threading; 

namespace Marlimer.Start
{
    public partial class frm_loadConexion : Form
    {
        private Boolean loadFirst = true;
        delegate void cerrarLoadDelegate();
        Boolean cargo = false;
        public frm_loadConexion()
        {
            InitializeComponent();
        }


        private void loadApplication()
        {
            //cargamos el archivo de configuracion para la session
            resulMsgError res = Session.loadSession();
            if (res.resul)      //se cargo el archivo bien
            {

                res = Session.loadConexion();
                if (res.resul)  //se conecto a la BD
                {
                    //cargar la aplicacion
                    //lblStatus.Text = res.message;
                    //this.Close();
                    
                    //Application.Run(Frm_InicioSesion);  
                    //Application.Run(new frm_InicioSesion());   
                    //frm_InicioSesion Frm_InicioSession = new frm_InicioSesion();
                    //this.Invoke(new cerrarLoadDelegate(cerrarLoad));
                    frm_InicioSesion Frm_InicioSesion = new frm_InicioSesion();
                    Frm_InicioSesion.Show();
                    this.Visible = false;
                }
                else
                {
                    MessageBox.Show(res.message,"Inicio Session",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    Application.Exit();  
                }
            }
            else
            {
                //problemas con la carga del archivo
                MessageBox.Show(res.message + Convert.ToChar(13) + "Se cerrara la aplicacion.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                //mostrar formulario de configuracion de archivo.
                Application.Exit(); 
            }
        }

        private void cerrarLoad()
        {
            cargo = true;
            
        }



        private void frm_loadConexion_Activated(object sender, EventArgs e)
        {
            //Thread myThread = new Thread(new ThreadStart(this.loadApplication));

            if (loadFirst)
            {
                loadFirst = false;
                
                //myThread.Start();
                //myThread.Join();  
                loadApplication();                
            }
            /*
            myThread.Join(); 
            if (cargo)
            {
                frm_InicioSesion Frm_InicioSesion = new frm_InicioSesion();
                Frm_InicioSesion.Show();
            }
             * */
        }


    }
}